package pen_exam.smallblackbox_2024_03_15;


//长度为N的数组，从0位置处罚，每步可以选择右移1-j个单位，每个位置会受到伤害，怎么走
//到N位置收到伤害最少
//T[i] = (state * ??) + ??? % //复杂计算
//思路：回溯，具体题目忘记了，改为一维数组怎么走取最小值
//T[index] 为可计算值，只有一个可变参数，可做dp优化
public class Class03_MInHurt {
    public static int minHurt(int[] T,int j){
        return process(T,j,0);
    }
    public static int process(int[] T,int j,int index){
        if(index >= T.length){
            return 0;
        }
        int ans = Integer.MAX_VALUE;
        int p1 = 0;
        for(int i = index + 1; i <= T.length && i<=j + index;i++){
            p1 = T[index] + process(T,j,i);
            ans = Math.min(ans,p1);
        }
        return ans;
    }

    public static void main(String[] args) {
        int[] T = new int[]{0,1,56,1,56,1,56,56};
        System.out.println(minHurt(T,2));
    }

}
